/*
 * Sequence.h
 *
 *  Created on: 2012-1-11
 */

#ifndef SEQUENCE_H_
#define SEQUENCE_H_

namespace NS_WF_UTIL {

class Sequence {
public:
	Sequence(int start, int step):value_(start), step_(step) {}
	Sequence(int start):value_(start), step_(1) {}
	Sequence():value_(0), step_(1) {}

	int operator()() {
		int result(value_);
		value_ = value_ + step_;
		return result;

	}
	virtual ~Sequence() {};
private:
	int value_;
	int const step_;
};

} /* namespace NS_WF_UTIL */
#endif /* SEQUENCE_H_ */
